A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices within the network, referred to as routers, maintain routing information that describes available routes through the network. Each route defines a path between two locations on the network. Upon receiving an incoming data packet, a router examines header information within the packet to identify the destination for the packet. Based on the header information, the router accesses the routing information, selects an appropriate route for the packet, and forwards the packet accordingly.
Virtual private networks (VPNs) are often used to securely share data over public network infrastructure, such as the Internet. For example, an enterprise that includes multiple geographically separated sites, each site including one or more computing devices, may establish a VPN to allow the computing devices to securely communicate through the Internet or other public network infrastructure.
In many situations, it is desirable to control the “Quality of Service” (QoS) that a router or other network device provides to a route or other network data flow associated with the VPN. In general, QoS refers to a level of communication throughput for the data flow, and typically specifies a defined bandwidth allocation and burst size. In order to control the QoS provided to a VPN route, the routers establishing the VPN often need to be manually configured. This process may be time consuming, and may require significant manual labor.